﻿using System;
using System.Xml.Serialization;
using System.Xml;

namespace UmSoft.SharePoint.Integration.Bdc.Core
{
    /// <summary>
    /// Класс содержит информацию об элементе справочника
    /// </summary>
    [XmlRoot(Namespace = "http://www.umsoft.ru/")]
    public class CatalogItem
    {
        /// <summary>
        /// Идентификатор элемента справочника
        /// </summary>
        public string ID;

        /// <summary>
        /// Название справочника в формате Справочник.ИмяСправочника
        /// </summary>
        [XmlElement(ElementName = "Type")]
        public string CatalogName;

        /// <summary>
        /// Код элемента справочника
        /// </summary>
        public string Code;

        /// <summary>
        /// Название элемента справочника
        /// </summary>
        public string Name;

        /// <summary>
        /// Массив реквизитов справочника
        /// </summary>
        [XmlArray(ElementName = "Requisites", IsNullable = true)]
        public Requisite[] Requisites;

        /// <summary>
        /// Конструктор по умолчанию
        /// </summary>
        public CatalogItem()
        {
        }

        /// <summary>
        /// Основной конструктор
        /// </summary>
        /// <param name="id"></param>
        /// <param name="catalogName"></param>
        /// <param name="code"></param>
        /// <param name="name"></param>
        /// <param name="data"></param>
        public CatalogItem(Guid id, string catalogName, string code,
            string name, Requisite[] data)
        {
            this.ID = id.ToString("B");
            this.CatalogName = string.Format("Справочник.{0}", catalogName);
            this.Code = code;
            this.Name = name;

            this.Requisites = data;
        }
    }
}